import { NullablePromise, DataList } from "pao-aop";
import { CustomAttribute, ModuleSort } from "./baseSign";

/*
 * 版权：Copyright (c) 2019 红网
 * 
 * 创建日期：Tuesday April 30th 2019
 * 创建者：杨子毅(yangziyi) - gzhhyangzy@126.com
 * 
 * 修改日期: Tuesday, 30th April 2019 12:03:52 pm
 * 修改者: 杨子毅(yangziyi) - gzhhyangzy@126.com
 * 
 * 说明
 * 		1、产品标识管理
 */

/**
 * 产品标识对象
 */
export interface ProductSign {
    /** 
     * key编号（前台使用，antd中的table中使用，后台忽略该字段） 
     */
    key?: string;
    /**
     * 索引
     */
    id?: string;
    /**
     * 品类标识
     */
    handle_code?: string;
    /**
     * 品类名称
     */
    handle_name?: string;
    /**
     * 标识分类
     */
    handle_type?: string;
    /**
     * 用户ID
     */
    user_id?: string;
    /**
     * 二维码图片
     */
    rc_code?: string;
    /**
     * 创建时间
     */
    create_date?: string;
    /**
     * 修改时间
     */
    modify_date?: string;
    /**
     * 产品类型
     */
    product_type?: string;
    /**
     * 自定义属性
     */
    custom_attribute?: CustomAttribute[];
    /**
     * 产品分类名称
     */
    parent_name?: string;
    /**
     * 产品分类ID
     */
    parent_id?: string;
    /** 
     * 模块排序及显示 
     */
    module_sort?: ModuleSort;
    /**
     * 企业标识编码
     */
    company_handle_code?: string;
    /**
     * 企业标识名称
     */
    company_handle_name?: string;
}

/**
 * 产品标识查询对象
 */
export class ProductSignCondition {
    /** id */
    id?: string;
    /** 产品标识名称 */
    handle_name?: string;
    /** 产品标识 */
    handle_code?: string;
    /** 创建时间 */
    create_date?: string;
}

/**
 * 产品标识服务
 */
export class IProductSignService {
    /**
     * 查询列表
     */
    get_product_list?(condition?: ProductSignCondition, page?: number, count?: number): NullablePromise<DataList<ProductSign> | undefined> {
        return undefined;
    }
    /**
     * 获取产品标识详情
     */
    get_product?(id?: string): NullablePromise<ProductSign | undefined> {
        return undefined;
    }
    /**
     * 产品标识新增/编辑
     */
    insert?(productSign?: ProductSign): NullablePromise<boolean | undefined> {
        return undefined;
    }
    /**
     * 产品标识删除
     */
    delete?(ids?: string[]): NullablePromise<boolean | undefined> {
        return undefined;
    }
    /**
     * 新增排序预览接口
     */
    insert_preview?(data: ProductSign): NullablePromise<any | undefined> {
        return undefined;
    }
}